import type { ExtractPropTypes } from 'vue';
import { buttonProps } from './src/props';

import Button from './src/BasicButton.vue';
import ButtonAdd from './src/ButtonAdd.vue';
import ButtonAddSub from './src/ButtonAddSub.vue';
import ButtonCancel from './src/ButtonCancel.vue';
import ButtonEdit from './src/ButtonEdit.vue';
import ButtonExport from './src/ButtonExport.vue';
import ButtonImport from './src/ButtonImport.vue';
import ButtonInfo from './src/ButtonInfo.vue';
import ButtonLink from './src/ButtonLink.vue';
import ButtonRemove from './src/ButtonRemove.vue';
import ButtonRemoveBatch from './src/ButtonRemoveBatch.vue';
import ButtonSave from './src/ButtonSave.vue';
import ButtonSubmit from './src/ButtonSubmit.vue';
import ButtonUpload from './src/ButtonUpload.vue';
import ButtonProgress from './src/workflow/ButtonProgress.vue';
import PopConfirmButton from './src/PopConfirmButton.vue';

export {
  Button,
  ButtonAdd as AButtonAdd,
  ButtonAddSub as AButtonAddSub,
  ButtonCancel as AButtonCancel,
  ButtonEdit as AButtonEdit,
  ButtonExport as AButtonExport,
  ButtonImport as AButtonImport,
  ButtonInfo as AButtonInfo,
  ButtonLink as AButtonLink,
  ButtonRemove as AButtonRemove,
  ButtonRemoveBatch as AButtonRemoveBatch,
  ButtonSave as AButtonSave,
  ButtonSubmit as AButtonSubmit,
  ButtonUpload as AButtonUpload,
  ButtonProgress as AButtonProgress,
  // ButtonRevoke as AButtonRevoke,
  // ButtonStart as AButtonStart,
  PopConfirmButton,
};

export declare type ButtonProps = Partial<ExtractPropTypes<typeof buttonProps>>;
